用Visual Basic開發(fā)公園售票系統(tǒng)軟件
2003/11/24 12:43:00
【摘要】:本文介紹了一個使用Visual Basic成功開發(fā)出的公園售票系統(tǒng)軟件。頂層采用Visual Basic開發(fā)界面,使用ADO與SQL Server數(shù)據(jù)庫進行數(shù)據(jù)交互。底層采用PLC控制檢票機進行檢票工作,并能在售票端隨時查詢和報表打印。 【關鍵詞】:Visual Basic PLC 串行通信 ADO 一、 前言 當前的公園售票系統(tǒng)幾乎全部都是人工售票,不僅消耗人力、效率低下,而且不利于統(tǒng)計、管理。往往在節(jié)假日來臨時,形成人們排隊等候買票的場面。使用計算機售票之后,大大提高了工作效率;同時也杜絕了因為偽造門票而造成的損失,減少了財務漏洞。使用本軟件還能夠快速、精確統(tǒng)計售票信息和實時查詢票務及游客流量情況。 由于公園門票的種類比較多,即有大門票、海洋館、水下世界、鳥語林這類單種門票,也有這幾種門票的相互組合,形成種類繁多的票種,另外還有領導授權票,招待票,兒童票和學生半價票等特殊票種,如果進行人工統(tǒng)計,工作量非常大,通過使用本軟件后,可以隨時查詢并打印當前任何票種的售票量和人數(shù),這樣可以根據(jù)實際情況隨時調整票價,利于管理。 二、 系統(tǒng)簡介 本軟件主要由三部分組成:數(shù)據(jù)庫部分、界面部分PLC控制部分。如圖(一)所示。軟件的最上層使用Visual Basic開發(fā),數(shù)據(jù)庫部分使用SQL Server數(shù)據(jù)庫,PLC采用松下PLC,其中,Visual Basic與SQL Server之間采用ADO連接,Visual Basic與PLC通過串行通訊控件Mscomm.ocx進行通訊。 1. 數(shù)據(jù)庫部分 根據(jù)客戶的反饋,公園的日客流量一般在每日5,000人左右,在節(jié)假日時人數(shù)在30,000人左右,為了以防萬一,我們假設數(shù)據(jù)庫的最大容量為100,000,經過分析比較各種數(shù)據(jù)庫設計軟件,決定數(shù)據(jù)庫部分采用微軟的SQL Server,既可以滿足數(shù)據(jù)的需求,速度也不慢,并且微軟可以提供給我們最好的支持。 2. 界面部分 界面部分使用Visual Basic進行編程,Visual Basic是當今最為流行的編程軟件之一,使用簡單,是初學者的最佳選擇;而且使用Visual Basic開發(fā)軟件周期短,能在短時期內制作出功能強大、使用方便的軟件。同時,選擇Visual Basic和SQL Server是大多數(shù)程序員開發(fā)客戶/服務器軟件時的選擇。 3. PLC部分 這是一種目前非常主流的控制方法,由PLC作為控制單元,控制的對象為檢票機的各種動作,如票的傳動機構、開關門、步進電機打孔、判斷是否為兒童等。控制程序的編寫采用梯形圖的編寫軟件。 上位機和PLC的通訊程序采用Visual Basic編寫,由一臺計算機同時控制2—10臺檢票機,通訊協(xié)議采用RS485,由于所選PLC只能支持被動的通訊方式,所以在本系統(tǒng)中使用由計算機輪巡的操作方式。 三、 軟件實現(xiàn) Visual Basic是當前最流行的開發(fā)軟件之一,它界面友好,使用簡單,易于學習,開發(fā)周期短,在不設計底層開發(fā)的情況下,完全可以開發(fā)出功能強大的軟件。同時,Visual Basic提供了豐富的API函數(shù),可以彌補它的不足之處。根據(jù)客戶的需求,我們將售票系統(tǒng)分為四大部分:售普通票窗口,售特殊票窗口,出納端和管理端。其中,售普通票端只能出售像大門這些單種門票及各種門票的組合票;售特殊票端不僅可以售普通票,還可以售兒童票、學生票、領導授權票(價格由領導決定)和招待票(用于招待某些人或軍人、殘疾人等)等特殊票種;出納端是用于當每日結束時,各個售票窗口的售票員將當日所賣的錢交到出納端,出納端可以查詢單個售票員的售票數(shù)和應交的金額數(shù),確認收款后,打印收款單據(jù);管理端的權限最大,可以用來設定票價,增加票種,分配領導授權票和領導票,打印日統(tǒng)計、月統(tǒng)計、年統(tǒng)計的報表。下面分別給予介紹 1. 售普通票端 普通票的種類可以由管理端來添加和刪除,程序啟動時,首先顯示登錄界面,通過建立一個ADO對象連接到服務器上,從服務器傳遞過來普通售票員的記錄,添加到ComboBox控件中,為了加快速度,一次將所有普通售票員的編號、姓名和密碼全部讀取到客戶機上,講這些信息保存到臨時數(shù)組中,當選擇不同的售票員時,從數(shù)組中提取出相應的密碼,這樣就不用每一次都從服務器端傳遞數(shù)據(jù),有利于節(jié)省時間和提高運行速度。 進入主售票界面后,首先在Form_Load事件中選擇所有的普通票票種,跟登錄界面一樣,一次性將所有的普通票的票種、票價、票的屬性及類型都保存到臨時數(shù)組中。選擇不同的票種,從相應的數(shù)組中提取出相應的票價和票的屬性,顯示到右邊的界面上。這時執(zhí)行寫卡指令,讓寫卡器處于寫卡狀態(tài),然后售票員就可以開始刷卡售票了,刷完后,自動顯示已經刷了幾張卡、應付金額數(shù);輸入收款金額后,自動顯示應找回的金額數(shù),最后確認賣票,完成一次售票工作。當售票員完成一日的售票工作后,可以進行當日售票的查詢,查詢方式根據(jù)客戶的需求,我們設置了位置查詢和票種查詢兩種查詢方式。其中,因為售票員的售票位置是不確定的,因此位置查詢用于查詢售票員在某個地方的售票數(shù);而票種查詢則是根據(jù)不同的票種來查詢售票員的售票情況。同時,我們使用HTMLHELP制作了CHM幫助文件,當售票員有什么地方不會使用時,可以隨時使用幫助。 2. 出納端 出納端的目的是用來收取售票員的交款。首先也需要輸入正確的密碼才能成功登錄,只是這次從服務器端返回的是出納員的記錄,登錄后,出納員可以選擇兩種方式來查詢:查詢售票員的售票情況和查詢售票員的交款情況。第一種是用來當售票員來交款時,出納員需要查詢該售票員需要交多少錢,總共賣了多少票,輸入該售票員的交款數(shù)額后,確認并打印收款憑證。第二種情況適當所有的售票員(或其中一部分)交款完畢后,打印出所有售票員的交款情況。 3. 管理端 管理端的情況就比較復雜了,管理端不僅可以設置票價、添加票種、增刪售票員之外,還可以查詢當日、當月的售票記錄,并可以生成報表打印。在軟件制作的過程中,管理端花費的時間也是最多的。 四、 編程過程中的問題及解決方法 1. 連接數(shù)據(jù)庫 在連接數(shù)據(jù)庫的各種方法中,使用ADO是最常見的一種,一般都使用ADO控件進行數(shù)據(jù)庫的連接,但是使用控件需要花費的資源比較多,因此,我們在程序中都采用代碼的形式進行連接數(shù)據(jù)庫。示例代碼如下: 2. 插入及查詢數(shù)據(jù) 向數(shù)據(jù)庫中插入數(shù)據(jù),有下列幾種方法: ① 使用結構化查詢語句SQL ② 使用ADO對象的Addnew方法 第一種方法不僅能夠節(jié)省代碼的輸入量,而且能夠以最快的速度插入到數(shù)據(jù)庫中;第二種方法使用起來比較方便,而且在調試時可以很方便地查找出插入錯誤的代碼位置。因此,我們建議在調試時使用第二種方法,最后在生成可執(zhí)行程序時再改為第一種方法。 示例如下: 3. 報表 制作報表有兩種方式,一種是使用Visual Basic自帶的Data Enviroment(即數(shù)據(jù)環(huán)境),另一種是Crystal Report(即水晶報表)。數(shù)據(jù)環(huán)境使用比較簡單,但是功能有限,只能夠簡單地將數(shù)據(jù)庫中的數(shù)據(jù)篩選出來,數(shù)據(jù)環(huán)境集成于Visual Basic中,不再需要額外安裝;水晶報表是一種功能強大的制作報表的軟件,需要額外安裝,一般在Visual Basic安裝盤的Tool目錄下都有,使用水晶報表不僅可以做簡單的數(shù)據(jù)瀏覽的報表,而且可以做交叉表、統(tǒng)計表和圖表等。最重要的是,水晶報表在Visual Basic.NET(通常說的Visual Basic7.0)中已經成為默認的制作報表的工具。 4. 制作幫助文件 幫助文件有兩種格式:.hlp文件和.chm文件。在現(xiàn)在的大部分軟件的幫助文件都是.chm文件,.hlp文件在Win95/98系統(tǒng)中多見。一般來說,.hlp文件需要先在Word或寫字板中編輯好(需要設定特定的格式)保存為.rtf格式,然后在Html Help WorkShop中進行編譯生成,最后在Visual Basic中調用,調用方法也比較簡單,設定CommonDialog控件的HelpFile屬性就可以了。而.chm文件需要首先使用FrontPage等網頁編輯軟件首先編輯好.htm文件,最后在Html Help WorkShop編譯生成,也可以在Html Help WorkShop中編輯.htm文件。 五、 結束語 本軟件采用了磁卡作為門票,并對每張門票進行加密處理,由驗票系統(tǒng)自動對門票進行識別,從而杜絕了假票和人為因素,減少了不必要的損失。并且本系統(tǒng)采用計算機控制和管理極大地提高了工作效率和管理水平。能夠實時、準確地查詢和統(tǒng)計門票發(fā)行的數(shù)量、銷售額、類別、時間及流量,并可打印日、周、月、季、年報表,便于審核即科學化決策。 六、 感謝 在軟件的編寫過程中,得到了機械科學研究院的查振元高級工程師的幫助,在此表示感謝! [參考文獻] [1] E.Winemiller,J.Roff著 ,Visual Basic6.0數(shù)據(jù)庫開發(fā),清華大學出版社,1999年 [2] Visual Basic開發(fā)手冊,機械工業(yè)出版社 [3] Visual Basic6.0編程與實例解析,科學出版社 [4]常斗南著,可編程序控制器原理•應用•實驗,機械工業(yè)出版社,1998年
提交
查看更多評論
其他資訊
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉型
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網絡被Forrester評為XDR領域領導者
智能工控,存儲強基 | ??低晭砭手黝}演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會